/**
 * Created by wengms on 2016/11/25.
 */
define(["angular"], function (angular) {
    var Expression = {},//普通表达式
        /**
         * 复杂表达式
         * @constructor
         */
        BinaryExpression = function () {
        },
        /**
         * 关系操作符
         * @type {{Arithmetic: {Addition: Operators.Arithmetic.Addition, Division: Operators.Arithmetic.Division, Modulo: Operators.Arithmetic.Modulo, Multiplication: Operators.Arithmetic.Multiplication, Subtraction: Operators.Arithmetic.Subtraction}, Conditional: {AndExpression: Operators.Conditional.AndExpression, OrExpression: Operators.Conditional.OrExpression}, Relational: {Contains: Operators.Relational.Contains, Equals: Operators.Relational.Equals, EqualsIgnoreCase: Operators.Relational.EqualsIgnoreCase, EqualsTrim: Operators.Relational.EqualsTrim, Exist: Operators.Relational.Exist, GreaterEqualsThan: Operators.Relational.GreaterEqualsThan, GreaterThan: Operators.Relational.GreaterThan, IfElseWhile: Operators.Relational.IfElseWhile, InSelection: Operators.Relational.InSelection, IsNull: Operators.Relational.IsNull, MemberOf: Operators.Relational.MemberOf, MinorEqualsThan: Operators.Relational.MinorEqualsThan, MinorThan: Operators.Relational.MinorThan, NotContains: Operators.Relational.NotContains, NotEndAt: Operators.Relational.NotEndAt, NotEquals: Operators.Relational.NotEquals, NotExist: Operators.Relational.NotExist, NotMemberOf: Operators.Relational.NotMemberOf, NotNull: Operators.Relational.NotNull, NotStartAt: Operators.Relational.NotStartAt, RegexMatch: Operators.Relational.RegexMatch}, LetVariableExpression: Operators.LetVariableExpression, Parenthesis: Operators.Parenthesis}}
         */
        Operators = {
            Arithmetic: {
                Addition: function () {

                },
                Division: function () {

                },
                Modulo: function () {

                },
                Multiplication: function () {

                },
                Subtraction: function () {

                }
            },
            Conditional: {
                AndExpression: function () {

                },
                OrExpression: function () {

                }
            },
            Relational: {
                Contains: function () {
                },
                Equals: function () {
                },
                EqualsIgnoreCase: function () {
                },
                EqualsTrim: function () {
                },
                Exist: function () {
                },
                GreaterEqualsThan: function () {
                },
                GreaterThan: function () {
                },
                IfElseWhile: function () {
                },
                InSelection: function () {
                },
                IsNull: function () {
                },
                MemberOf: function () {
                },
                MinorEqualsThan: function () {
                },
                MinorThan: function () {
                },
                NotContains: function () {
                },
                NotEndAt: function () {
                },
                NotEquals: function () {
                },
                NotExist: function () {
                },
                NotMemberOf: function () {
                },
                NotNull: function () {
                },
                NotStartAt: function () {
                },
                RegexMatch: function () {
                }
            },
            LetVariableExpression: function () {
            },
            Parenthesis: function () {
            }
        },
        /**
         * 值表达式
         * @type {{ArrayValue: Value.ArrayValue, BooleanValue: Value.BooleanValue, DoubleValue: Value.DoubleValue, FloatValue: Value.FloatValue, IntValue: Value.IntValue, LongValue: Value.LongValue, NullValue: Value.NullValue, StringValue: Value.StringValue, Value: Value.Value}}
         */
        Value = {
            ArrayValue: function () {
            },
            BooleanValue: function () {
            },
            DoubleValue: function () {
            },
            FloatValue: function () {
            },
            IntValue: function () {
            },
            LongValue: function () {
            },
            NullValue: function () {
            },
            StringValue: function () {
            },
            Value: function () {
            },
        },
        Attribute = function () {
        },
        BinaryExpression = function () {
        },
        BreakAssembly = function () {
        },
        BreakPackage = function () {
        },
        Deduction = function () {
        },
        ElseExpression = function () {
        },
        ElseIfExpression = function () {
        },
        ExecuteExpression = function () {
        },
        Expression = function () {
        },
        ExpressionFactory = function () {
        },
        ExpressionVisitor = function () {
        },
        ExpressionVisitorAdapter = function () {
        },
        Fact = function () {
        },
        IfExpression = function () {
        },
        Import = function () {
        },
        InsertExpression = function () {
        },
        ModifyContextExpression = function () {
        },
        Package = function () {
        },
        Property = function () {
        },
        RuleAssemblyExpression = function () {
        },
        RuleExpression = function () {
        },
        RulePackageExpression = function () {
        },
        SetModel = function () {
        },
        SetRtnValue = function () {
        },
        SetValue = function () {
        },
        VariableExpression = function () {
        };
});